package com.iwuke.dance.wallet.identity_information;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.iwuke.dance.R;
import com.iwuke.dance.activity.BaseActivity;
import com.iwuke.dance.activity.WebViewActivity;
import com.iwuke.dance.gadget_view.TitleBarView;
import com.iwuke.dance.util.ToastUtil;
import com.iwuke.dance.util.Util;
import com.iwuke.dance.util.merchants_connect.NetworkEvent;
import com.iwuke.dance.wallet.EnterVerificationCodeActivity;

import java.util.ArrayList;
import java.util.List;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import de.greenrobot.event.Subscribe;
import de.greenrobot.event.ThreadMode;

/**
 * @author: 魏从响
 * @date: 2025/9/15
 * 验证手机号
 */
public class VerifyMobileNumberActivity extends BaseActivity implements View.OnClickListener {

    private TitleBarView title_bar;
    private EditText et_phone_number;
    private TextView tv_button;
    private ImageView image_circle;
    private TextView tv_user_agreement;
    private TextView tv_privacy_policy;
    private boolean check_box=false;
    private TextView tv_bottom;
    private ImageView img_bottom;

    /**
     * @description 网络实时监听
     */
    @Subscribe(threadMode = ThreadMode.MainThread)
    public void onEvent(NetworkEvent networkEvent){
        BaseActivity.setConnect(VerifyMobileNumberActivity.this,networkEvent,title_bar);

    }
    @Override
    protected int getView() {
        return R.layout.activity_verify_mobile_number;
    }

    @Override
    protected void init(View mView) {

        title_bar = findViewById(R.id.title_bar);
        //选择手机号前缀
        tv_bottom = findViewById(R.id.tv_bottom);
        //选择手机号前缀
        img_bottom = findViewById(R.id.img_bottom);
        //请输入手机号码
        et_phone_number = findViewById(R.id.et_phone_number);
        //获取短信验证码
        tv_button = findViewById(R.id.tv_button);
        //是否选中
        image_circle = findViewById(R.id.image_circle);
        //用户协议
        tv_user_agreement = findViewById(R.id.tv_user_agreement);
        //隐私政策
        tv_privacy_policy = findViewById(R.id.tv_privacy_policy);


        title_bar.setLeftOnClick(this);
        title_bar.setTitleText(null);
        //选择手机号前缀
        tv_bottom.setOnClickListener(this);
        //选择手机号前缀
        img_bottom.setOnClickListener(this);
        tv_button.setOnClickListener(this);
        image_circle.setOnClickListener(this);
        //用户协议
        tv_user_agreement.setOnClickListener(this);
        //隐私政策
        tv_privacy_policy.setOnClickListener(this);

    }

    @Override
    protected void initData() {

    }

    @Override
    public void onClick(View v) {
        if (v.getId()==R.id.img_left){
            finish();
        }else if (v.getId()==R.id.tv_bottom||v.getId()==R.id.img_bottom){//选择手机号前缀
            popupWindowMobileNumberPrefix(VerifyMobileNumberActivity.this);
        }else if (v.getId()==R.id.tv_button){
            if (!check_box){
                Toast.makeText(this,"请阅读并同意《用户协议》和《隐私政策》",Toast.LENGTH_SHORT).show();
                return;
            }
            String string = et_phone_number.getText().toString();
            if (Util.isPhoneNumber(string)) {
                Util.setIntent(VerifyMobileNumberActivity.this, EnterVerificationCodeActivity.class, tv_bottom.getText().toString()+string);
                finish();
            }else
                ToastUtil.setToast(VerifyMobileNumberActivity.this,"手机号不正确");
        }else if (v.getId()==R.id.image_circle){
            if (check_box){
                //不选中
                //img_check_box.setImageResource(R.drawable.bg_radius7_white_shape);
                image_circle.setColorFilter(getResources().getColor(R.color.color_ccc,null));
//                image_circle.setImageResource(R.mipmap.img_circle);
                check_box = false;
            }else {
                //选中
                image_circle.setColorFilter(getResources().getColor(R.color.color_5ed,null));
//                image_circle.setImageResource(R.mipmap.img_check_box);
                check_box = true;
            }
        }else if (v.getId()==R.id.tv_user_agreement){//用户协议
            Util.setIntent(VerifyMobileNumberActivity.this, WebViewActivity.class,"https://www.baidu.com");
        }else if (v.getId()==R.id.tv_privacy_policy){//隐私政策
            Util.setIntent(VerifyMobileNumberActivity.this, WebViewActivity.class,"https://www.baidu.com");
        }
    }

    public void popupWindowMobileNumberPrefix(Context context){
        //PopupWindow布局
        View view = View.inflate(context, R.layout.popup_window_mobile_number_prefix, null);

        PopupWindow popupWindow = new PopupWindow(view, ActionBar
                .LayoutParams.WRAP_CONTENT,ActionBar.LayoutParams
                .WRAP_CONTENT,true);
        popupWindow.setTouchable(true);

        popupWindow.setOutsideTouchable(true);
        //新方法：使用透明的 ColorDrawable   new ColorDrawable(Color.TRANSPARENT)和new BitmapDrawable()一样
        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        // 设置白色背景
        //popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        //创建带圆角的背景 首先，在 res/drawable 目录下创建一个 XML 文件（如 popup_background.xml）：
        //popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.popup_background));
        //使用 NinePatch 图片作为背景 如果你的设计需要更复杂的背景效果，可以使用 .9.png 图片：
        //popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.your_nine_patch_background));
        popupWindow.showAsDropDown(tv_bottom);
//        popupWindow.showAtLocation(view, img_bottom,0,0);

        RecyclerView recycler_view = view.findViewById(R.id.recycler_view);
        //国家/地区    国际前缀(国家代码)  手机号常见格式（举例）
        // 中国大陆         +86            +86 138 1234 5678
        // 美国/加拿大      +1              +1 (123) 456-7890
        // 英国            +44             +44 79 1234 5678
        // 日本            +81             +81 90 1234 5678
        // 韩国            +82             +82 10 1234 5678
        // 德国            +49             +49 151 12345678
        // 法国            +33             +33 6 12 34 56 78
        // 澳大利亚         +61             +61 412 345 678
        // 新加坡           +65             +65 9123 4567
        // 巴西             +55             +55 11 98765 4321
        // 印度             +91             +91 98765 43210
        // 香港（中国）      +852             +852 5123 4567
        // 澳门（中国）      +853             +853 6612 3456
        // 台湾地区（中国）   +886             +886 912 345 678
        List<String> lists = new ArrayList<>();
        lists.add("+86");

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
        linearLayoutManager.setOrientation(RecyclerView.VERTICAL);
        recycler_view.setLayoutManager(linearLayoutManager);
        MobileNumberPrefixAdapter adapter = new MobileNumberPrefixAdapter(context, R.layout.adapter_mobile_number_prefix, lists);
        recycler_view.setAdapter(adapter);

        adapter.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
                tv_bottom.setText(lists.get(position));
                popupWindow.dismiss();
            }
        });

    }
}
